Linux下服务器日志清理

  之前在做一个项目,服务器部署在Linux系统(Red Hat 6)下,后来发现服务器运行每天产生大量的日志文件,一个多月产生了60多G的日志文件,消耗巨大的存储空间。后来就想办法让Linux系统自动每天清理十五天以前的日志文件。

  实现过程是写一个删除日志的shell脚本,然后利用Linux的crontab设置定时器定时自动执行shell脚本。

  解释一下,服务器产生的日志放在/home/webServive/log/路径下。

  使用相关用户登录Linux系统,例如我用的用户是ryan,然后在/home/webServive路径下新建cleaneLog.sh脚本,编辑相关shell脚本代码,如下所示。

#!/bin/sh
rm -vrf $(find /home/webServive/log/ -type d -mtime +15) and
rm -vrf $(find /home/webServive/log/ -type f -mtime +15) and
echo "Successfully deleted service logs."

  rm -vrf $(find /home/webServive/log/ -type d -mtime +15)是先找到 /home/webServive/log/路径下十五天之前建立的文件夹,然后删除,删除文件夹以及文件夹下面的文件。

  rm -vrf $(find /home/webServive/log/ -type f -mtime +15)是先找到 /home/webServive/log/路径下十五天之前建立的文件,然后删除。

  使用终端找到cleanLog.sh所在路径,然后执行chmod u+x cleanLog.sh命令为文件的所有者增加可执行权限。

  将终端切换到root用户,执行crontab -u ryan –e为ryan用户添加定时器,编辑定时内容,每天凌晨2.15分执行cleanLog.sh脚本清理日志文件。

  15 2 * * * /bin/sh /home/webServive/cleanLog.sh

  保存好定时内容后,执行以下脚本重启定时器,使其生效。

  cd /sbin/

    service crond restart

posted @ 2017-05-22 09:53  TensinKiKi  阅读(7996)  评论(0编辑  收藏  举报